/*! \file Vector3.h
 *	\brief <write description for Vector3.h>
 *
 *	created:	2009/11/17
 *	created:	17:11:2009   12:28
 *	filename: 	o:\main\libs\math\Vector3.h
 *	file path:	o:\main\libs\math
 *	file base:	Vector3
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _MATH_VECTOR3_H_
#define _MATH_VECTOR3_H_

#pragma once

namespace tt{
namespace math{

template<typename T>
class Vector3
{
public:
	typedef T Value;

public:
	Vector3(void);
	Vector3(Value, Value, Value);
	~Vector3(void);

	Vector3 operator+(const Vector3&);
	Vector3 operator-(const Vector3&);

	Vector3& operator+=(const Vector3&);
	Vector3& operator-=(const Vector3&);

public:
	Value x;
	Value y;
	Value z;
};

typedef Vector3<int> Vector3I;
typedef Vector3<float> Vector3F;
typedef Vector3<double> Vector3D;

} //namespace math
} //namespace tt
#include "Vector3.inl"

#endif //_MATH_VECTOR3_H_
